The present invention relates to a motor controller in which the rotational angle of the rotor of a motor is estimated from a rotational position signal of a low resolution, and the current and the voltage changing in a waveform such as a substantially sinusoidal waveform is supplied to the stator windings.
For controlling the drive of a brushless motor having no commutation mechanism such as a commutator and brushes, it has hitherto been necessary to detect the position of the rotating rotor always accurately.
There is a conventional motor controller called the 120-degree conduction type rectangular wave-driven system based on the rotational signal position of a low resolution. In this motor controller, power is supplied to the stator windings with a voltage of rectangular waveform. For this reason, the current flowing to the stator windings is considerably distorted, and therefore the torque generated is subjected to a large fluctuation, thereby causing the brushless motor to vibrate and generate noises.
In a conventional motor controller for solving the problem described above, the rotational angle of the rotor of a brushless motor is estimated and the drive of the brushless motor is controlled by supplying a voltage changing with a substantially sinusoidal waveform to the stator windings of the brushless motor. As such conventional motor controllers there are known those disclosed in the Japanese published unexamined patent applications, publication Nos. Hei 1-12619 and Hei 4-304191.
Now, the brushless motor drive unit disclosed in the Japanese published unexamined patent application, publication No. Hei 4-304191 will be explained.
First, the configuration of the brushless motor drive unit will be described.
FIG. 32 is a block diagram showing a configuration of a conventional brushless motor drive unit. In FIG. 32, a brushless motor 9 includes a stator (not shown) wound with stator windings 1U, 1V, 1W and a rotor 5 arranged in the vicinity of the stator (not shown) and supported rotatably. Also, the brushless motor 9 includes rotational position detection means for detecting the rotational position of the rotor 5.
This rotational position detection means includes a rotational position detecting disk 4 having the same center of rotation as the rotor 5 and having the outer peripheral surface thereof magnetized to the same number of magnetic poles as the rotor 5, and three rotational position signal generators 3U, 3V, 3W arranged apart from each other by a mechanical angle of 60 degrees (electrical angle of 120 degrees since the number of magnetic poles is four) in the vicinity of the outer peripheral surface of the rotational angle detecting disk 4. The rotational position signal generators 3U, 3V, 3W are configured of Hall ICs and output rotational position signals CSU, CSV, CSW, respectively.
The motor controller shown in FIG. 32 comprises edge detection means 1030 supplied with the rotational position signals CSU, CSV, CSW from the rotational position signal generators 3U, 3V, 3W for outputting a rotational position signal interrupt signal IntCss, multiplier means 1040 supplied with the rotational position signal interrupt signal IntCss for outputting a first timer interrupt signal IntTm1, and a counter 1071 supplied with the rotational position signal interrupt signal IntCss and the first timer interrupt signal IntTm1 for outputting an estimated rotational angle low-order address signal .theta.low.
Also, the conventional motor controller comprises a memory 1020 and drive means 1010. The memory 1020 is supplied with the rotational position signals CSU, CSV, CSW from the rotational position signal generators 3U, 3V, 3W and the estimated rotational angle low-order address .theta.low from the counter 1071 for outputting stator voltage commands vu*, vv*, vw* to the drive means 1010. The drive means 1010 is connected with the stator windings 1U, 1V, 1W. Incidentally, the symbol * in the stator voltage commands vu*, vv*, vw* indicates a command.
Next, an explanation will be given of the operation of the conventional motor controller configured as described above.
The edge detection means 1030 generates the rotational position signal interrupt signal IntCss at a timing of the rise and the fall of the rotational position signals CSU, CSV, CSW of rectangular waveform, respectively. The multiplier means 1040 multiplies the rotational position interrupt signal IntCss by a method described later and outputs the first timer interrupt signal IntTm1 to the counter 1071.
The counter 1071 counts up the count each time the first timer interrupt signal IntTm1 is input thereto, and outputs the count as the estimated rotational angle low-order address signal .theta.low. Also, the counter 1071 resets the count to 0 upon input thereto of the rotational position interrupt signal IntCss.
The memory 1020 produces the stator voltage commands vu*, vv*, vw* based on the rotational position signals CSU, CSV, CSW and the estimated rotational angle low-order address signal .theta.low.
The drive means 1010 supplies power to the stator windings 1U, 1V, 1W based on the stator voltage commands vu*, vv*, vw*.
Next, an explanation will be given of the configuration and operation of the multiplier means 1040 of the conventional motor controller.
FIG. 33 is a block diagram showing a configuration of the multiplier means 1040. In FIG. 33, the multiplier means 1040 includes a clock generator 1041, a frequency divider 1042, a first timer 1046, a second timer 1043, a latch 1044 and a comparator 1045.
The clock generator 1041 generates a first clock signal ck1 having a frequency fck1 and outputs this first clock signal ck1 to the frequency divider 1042 and the first timer 1046.
The frequency divider 1042 is supplied with the first clock signal ck1 and the rotational position signal interrupt signal IntCss and outputs a second clock signal ck2.
The second timer 1043 is supplied with the second clock signal ck2 and the rotational position signal interrupt signal IntCss and outputs a second timer value signal Tm2. The latch 1044 is supplied with the second timer value signal Tm2 and the rotational position signal interrupt signal IntCss and outputs a time interval CssCnt.
The first timer 1046 is supplied with the first clock signal ck1, the rotational position signal interrupt signal IntCss and a first timer interrupt signal IntTm1 and outputs the first timer value signal Tm1 to the comparator 1045.
The comparator 1045 is supplied with the time interval CssCnt and the first timer value signal Tm1 and outputs the first timer interrupt signal IntTm1.
The operations of the multiplier means 1040 of the conventional motor controller configured as described above will be explained.
The frequency divider 1042 supplied with the first clock signal ck1 having the frequency fck1 from the clock generator 1041 divides the frequency of the first clock signal ck1 and produces a second clock signal ck2 of a frequency fck2 lower than the frequency of the first clock signal ck1. Here, fck1/fck2 is called the frequency division number.
The frequency divider 1042 is configured of a timer, and upon input thereto of the first clock signal ck1, counts up the timer value, and when the timer value reaches the frequency division number (fck1/fck2), outputs the second clock signal ck2 and resets the timer value to 0. Also, the timer value is reset to 0 when the rotational position interrupt signal IntCss is inputted to the frequency divider 1042.
The second timer 1043 counts up the second timer value signal Tm2 each time the second clock signal ck2 is input thereto, and resets the second timer value signal Tm2 to 0 each time the rotational position signal interrupt signal IntCss is input thereto.
The latch 1044 stores as the time interval CssCnt the second timer value signal Tm2 when the rotational position signal interrupt signal IntCss is input thereto.
The first timer 1046 counts up the first timer value signal Tm1 each time the fist clock signal ck1 is inputted thereto, and resets the first timer value signal Tm1 to 0 each time the rotational position signal interrupt signal IntCss or the first timer interrupt signal IntTm1 is inputted thereto.
The comparator 1045 compares the time interval CssCnt with the first timer value signal Tm1 and when they are equal to each other, outputs the first timer interrupt signal IntTm1.
As a result of the operations of the first timer 1046 and the comparator 1045, the first timer interrupt signal IntTm1 is output and the first timer value signal Tm1 is reset to 0 each time the first timer value signal Tm1 becomes the time interval CssCnt.
As described above, the multiplier means 1040 produces the first timer interrupt signal IntTm1 which is the result of multiplying the rotational position signal interrupt signal IntCss by [fck1/fck2].
With the above-mentioned configuration, the conventional motor controller multiplies the rotational position signal interrupt signal IntCss providing each edge of the rotational position signals CSU, CSV, CSW with a resolution of 60 degree, and thus produces the first timer interrupt signal IntTm1 with a higher resolution. This motor controller produces the stator voltage commands vu*, vv*, vw* of a substantially sinusoidal waveform, applies a sinusoidal waveform voltage to the stator windings 1U, 1V, 1W, and supplies stator currents iu, iv, iw of substantially sinusoidal waveform to the stator windings 1U, 1V, 1W. By configuring this way, a motor controller has been realized with a small output torque fluctuation and small motor vibrations and noises.
In the conventional motor controller configured as described above, the rotational position signals CSU, CSV, CSW sometimes generate variations due to the variations of the offset voltage or the mounting error of the Hall elements or the variations in the magnetization of the rotational position detecting disk 4. These variations poses the problem of the variations of the time interval CssCnt, the fluctuation of the estimated rotational angle .theta. and the torque ripple generated in the conventional motor controller.